//
//  CZMainViewController.swift
//  WH01
//
//  Created by Apple on 16/7/8.
//  Copyright © 2016年 KY. All rights reserved.
//

import UIKit

class CZMainViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        //  统一设置tabbar的样式，这段代码越早执行越好，一般放到appdelegate里面
//        UITabBar.appearance().tintColor = UIColor.orangeColor()

        // 添加控制器的两种方式
//        viewControllers = []
//        addChildViewController(xx)
        
        
        
        //  设置tabbar
        
        //  使用kvc给只读属性赋值
        
        let czTabBar = CZTabBar()
        czTabBar.czDelegate = self
        //  使用self会产生循环引用
        czTabBar.composeButtonClosure = { [weak self] in
            print("撰写按钮点击了")
        }
        
        
        setValue(czTabBar, forKey: "tabBar")
//        self.tabBar = CZTabBar()
        
        
        //  添加子控制器

        //  添加带文字的图片
//        addChildViewController(CZHomeTableViewController(), title: "首页", imageName: "allproducts")
        addChildViewController(CZHomeTableViewController(), title: "首页", imageName: "tabbar_home")
        addChildViewController(CZMessageTableViewController(), title: "消息", imageName: "tabbar_message_center")
        addChildViewController(CZDiscoverTableViewController(), title: "发现", imageName: "tabbar_discover")
        addChildViewController(CZProfileTableViewController(), title: "我的", imageName: "tabbar_profile")
    }

    
    func addChildViewController(childController: UIViewController, title: String, imageName: String) {
        //  设置标题
//        childController.tabBarItem.title = title
//        childController.navigationItem.title = title
        
        //  如果导航栏的表情和tabbar的标题一样，可以合并一句
        childController.title = title
        
        
        
        //  设置图片
        childController.tabBarItem.image = UIImage(named: imageName)
        //  修改图片渲染方式 1. 手动修改图片的渲染方式，2.通过代码修改图片的渲染方式
        childController.tabBarItem.selectedImage = UIImage(named: imageName + "_selected")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
        //  设置tabbar字体颜色
        childController.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.orangeColor()], forState: .Selected)
        
        //  使用UITabbar统一修改样式需要的代码
        //childController.tabBarItem.selectedImage = UIImage(named: imageName + "_selected")
        //  设置图片位置
//        childController.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
        
        //  创建导航控制器
        let nav = UINavigationController(rootViewController: childController)
        
        addChildViewController(nav)
        
        
        
    }
    
    
   

}

// MARK:   实现CZTabBarDelegate代理协议
extension CZMainViewController: CZTabBarDelegate {
    func didSelectedComposeButton() {
        print("我是代理调用过来的")
    }

}










